<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录 - EasyLanNetdisk</title>
    <style>
        /* 1. 全局背景渐变动画 */
        body {
            background: linear-gradient(270deg, #f8f9fa, #e9ecef);
            background-size: 400% 400%;
            animation: backgroundMove 15s ease infinite, pageFadeIn 1s ease-out;
            font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }

        @keyframes backgroundMove {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        @keyframes pageFadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        /* 2. 登录框呼吸动画 */
        .login-container {
            background-color: #fff;
            padding: 2.5rem;
            border-radius: 12px;
            width: 100%;
            max-width: 350px;
            animation: containerBreathe 4s infinite ease-in-out;
            position: relative;
            overflow: hidden;
        }

        @keyframes containerBreathe {
            0%, 100% { box-shadow: 0 4px 15px rgba(0, 123, 255, 0.2); }
            50% { box-shadow: 0 4px 25px rgba(42, 92, 170, 0.4); }
        }

        /* 3. 登录框渐变边框 */
        .login-container::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            border-radius: 12px;
            padding: 2px;
            background: linear-gradient(90deg, #007bff, #2a5caa, #007bff);
            mask:
                linear-gradient(#fff 0 0) content-box, 
                linear-gradient(#fff 0 0);
            -webkit-mask:
                linear-gradient(#fff 0 0) content-box, 
                linear-gradient(#fff 0 0);
            mask-composite: exclude;
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            animation: borderRotate 8s linear infinite;
            z-index: -1;
        }

        @keyframes borderRotate {
            0% { background-position: 0% 50%; }
            100% { background-position: 200% 50%; }
        }

        /* 4. 标题文字渐变动画 */
        h1 {
            text-align: center;
            background: linear-gradient(90deg, #2a5caa, #007bff);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            background-size: 200% 100%;
            animation: textGradient 8s infinite;
            margin-top: 0;
        }

        @keyframes textGradient {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* 5. 输入框聚焦发光动画 */
        input {
            padding: 0.75rem;
            margin-bottom: 1rem;
            border: 2px solid transparent;
            border-radius: 6px;
            background-image: linear-gradient(white, white), linear-gradient(90deg, #007bff, #2a5caa);
            background-origin: border-box;
            background-clip: padding-box, border-box;
            transition: all 0.3s;
        }

        input:focus {
            outline: none;
            box-shadow: 0 0 15px rgba(0, 123, 255, 0.4);
            animation: inputGlow 2s infinite alternate;
        }

        @keyframes inputGlow {
            0% { box-shadow: 0 0 10px rgba(0, 123, 255, 0.3); }
            100% { box-shadow: 0 0 20px rgba(0, 123, 255, 0.6); }
        }

        /* 6. 按钮渐变动画 */
        button {
            padding: 0.9rem;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.3s;
            background: linear-gradient(90deg, #2a5caa, #007bff);
            background-size: 200% 100%;
            color: white;
            animation: buttonGradient 3s infinite alternate;
        }

        @keyframes buttonGradient {
            0% { background-position: 0% 50%; }
            100% { background-position: 100% 50%; }
        }

        button:hover {
            transform: scale(1.05);
            box-shadow: 0 0 15px rgba(0, 123, 255, 0.4);
        }

        /* 7. 标签悬停渐变效果 */
        label {
            margin-bottom: 0.5rem;
            color: #666;
            display: block;
            transition: all 0.3s;
            background: linear-gradient(to right, #2a5caa, #2a5caa);
            background-position: bottom;
            background-size: 0% 2px;
            background-repeat: no-repeat;
        }

        label:hover {
            color: #2a5caa;
            background-size: 100% 2px;
        }

        /* 8. 移除不必要的表单元素间距动画 */
        form {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        /* 9. 错误提示呼吸效果 */
        .error-message {
            color: #dc3545;
            text-align: center;
            margin-top: 1rem;
            animation: errorBreathe 2s infinite ease-in-out;
        }

        @keyframes errorBreathe {
            0%, 100% { opacity: 0.8; transform: scale(1); }
            50% { opacity: 1; transform: scale(1.02); }
        }

        /* 10. 页面角落氛围灯效果 */
        body::before, body::after {
            content: '';
            position: fixed;
            width: 300px;
            height: 300px;
            border-radius: 50%;
            z-index: -1;
            filter: blur(100px);
            animation: ambientLight 15s infinite alternate;
        }

        body::before {
            top: -150px;
            left: -150px;
            background: rgba(0, 123, 255, 0.2);
        }

        body::after {
            bottom: -150px;
            right: -150px;
            background: rgba(42, 92, 170, 0.2);
        }

        @keyframes ambientLight {
            0% { opacity: 0.3; transform: scale(1); }
            100% { opacity: 0.6; transform: scale(1.2); }
        }
    </style>
</head>
<body>
    <div class="login-container">
        <h1>登录</h1>
        <form method="post">
            <label for="username">用户名:</label>
            <input type="text" id="username" name="username" required>
            <label for="password">密码:</label>
            <input type="password" id="password" name="password" required>
            <button type="submit">登录</button>
        </form>
    </div>
</body>
</html>